/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.infoweblogic.dao;

import br.com.infoweblogic.interfaces.IAlunoDisciplinadaDao;
import br.com.infoweblogic.interfaces.IDisciplinaDao;
import br.com.infoweblogic.pojos.AlunoDisciplina;
import br.com.infoweblogic.pojos.Disciplina;
import br.com.pbs.dao.GenericDao;
import br.com.pbs.daos.AlunoDao;
import br.com.pbs.exeptions.BancoExeption;
import br.com.pbs.interfaces.IPessoaDao;
import br.com.pbs.pojos.Aluno;

/**
 *
 * @author Luiz Segundo
 */
public class AlunoDisciplinaDao extends GenericDao<AlunoDisciplina> implements IAlunoDisciplinadaDao{

        public AlunoDisciplina verifica(AlunoDisciplina valida) throws BancoExeption {

                IPessoaDao aluno = new AlunoDao();
                IDisciplinaDao disciplina = new DisciplinaDao();
                if(!valida.getAno().isEmpty()){
                        if(valida.getAluno() != null && valida.getDisciplina() != null){
                               Aluno testeAluno = (Aluno) aluno.buscaPorAtributoString("mat", valida.getAluno().getMat(), valida.getAluno());
                               if(!valida.getAluno().equals(testeAluno)){
                                       aluno.save(valida.getAluno());
                               }else{
                                       valida.setAluno(testeAluno);
                               }
                               Disciplina testeDisciplina = disciplina.buscaObjetoPorNome(valida.getDisciplina().getNome(), valida.getDisciplina());
                               if(!valida.getDisciplina().equals(testeDisciplina)){
                                       disciplina.save(testeDisciplina);
                               }else{
                                       valida.setDisciplina(testeDisciplina);
                               }
                               return valida;
                        }
                }
                throw new BancoExeption("Não é possivel salvar esta entidade");
        }

}
